Este projeto visa explorar a viabilidade da aplicação de técnicas de detecção de objetos usando o modelo YOLOv5 em imagens e vídeos para identificação e rastreamento de objetos em tempo real. A detecção de objetos é uma área crucial em visão computacional e pode ser aplicada em diversos campos, como segurança, veículos autônomos, vigilância por vídeo e muito mais.
A detecção de objetos é um dos principais desafios em visão computacional. O YOLOv3 (You Only Look Once) é um dos modelos de referência para essa tarefa. Este projeto visa implementar e avaliar o desempenho do YOLOv5 na detecção de objetos em tempo real, com foco na precisão e na velocidade de processamento.
Alguns estudos relacionados a esta pesquisa incluem:
Este projeto de pesquisa visa contribuir para o campo da visão computacional, avaliando a viabilidade e o desempenho da detecção de objetos com o modelo YOLOv3. Espera-se que os resultados obtenham aplicações práticas em várias áreas.
Conexão com o Google Driver
from google.colab import drive
drive.mount('/content/drive')
Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
# Clonar o repositório YOLOv5
!git clone https://github.com/ultralytics/yolov5.git yolov5
# Entrar na pasta do repositório
%cd yolov5
# Instalar as dependências
!pip install -U -r requirements.txt
!pip install -U -q numpy opencv-python pillow PyYAML
!pip install -U -q torch torchvision
import torch
from PIL import Image
from pathlib import Path
from IPython.display import display
from google.colab import files # Importe a biblioteca para fazer o upload
import io
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
Using cache found in /root/.cache/torch/hub/ultralytics_yolov5_master YOLOv5 🚀 v7.0-228-g4d687c8 Python-3.10.12 torch-2.1.0+cu118 CPU Fusing layers... YOLOv5s summary: 213 layers, 7225885 parameters, 0 gradients, 16.4 GFLOPs Adding AutoShape...
# Fazer upload da imagem
uploaded = files.upload() # O usuário fará o upload da imagem aqui
# Extrair o nome do arquivo da imagem
image_filename = next(iter(uploaded))
# Carregar a imagem
img = Image.open(io.BytesIO(uploaded[image_filename])) # Correção: importe a biblioteca io
# Realizar a detecção
results = model(img)
# Exibir resultados
results.show()
# Exibir a imagem com caixas delimitadoras
display(img)
Saving No Bras.jpg to No Bras (2).jpg
Primeiro, faça o upload do arquivo ZIP contendo as imagens:
from google.colab import files
# Fazer upload do arquivo ZIP
uploaded_zip = files.upload()
Saving Images.zip to Images.zip
Extraia o conteúdo do arquivo ZIP e crie uma pasta para armazenar as imagens:
import zipfile
import os
# Nome do arquivo ZIP
zip_filename = next(iter(uploaded_zip))
# Pasta de destino para as imagens
output_folder = "imagens_para_detecao"
os.makedirs(output_folder, exist_ok=True)
# Extrair as imagens do arquivo ZIP
with zipfile.ZipFile(io.BytesIO(uploaded_zip[zip_filename]), 'r') as zip_ref:
zip_ref.extractall(output_folder)
Carregue o modelo YOLOv5 e realize a detecção nas imagens:
import torch
from PIL import Image
import zipfile
from io import BytesIO
import IPython.display as display
from pathlib import Path
from google.colab import files
import cv2
import numpy as np
# Carregar o modelo YOLOv5
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Fazer o upload do arquivo ZIP
uploaded = files.upload()
# Extrair as imagens do arquivo ZIP e realizar a detecção
for zip_filename, zip_content in uploaded.items():
with zipfile.ZipFile(BytesIO(zip_content), "r") as zip_file:
image_files = [info for info in zip_file.infolist() if not info.is_dir()]
for image_info in image_files:
with zip_file.open(image_info) as image_file:
# Carregar a imagem
img = Image.open(image_file)
# Realizar a detecção com YOLOv5
results = model(img)
# Converter a matriz de pixel em objeto de imagem
img_detected = Image.fromarray(results.render()[0])
# Exibir a imagem com caixas delimitadoras
display.display(img_detected)
Using cache found in /root/.cache/torch/hub/ultralytics_yolov5_master YOLOv5 🚀 v7.0-228-g4d687c8 Python-3.10.12 torch-2.1.0+cu118 CPU Fusing layers... YOLOv5s summary: 213 layers, 7225885 parameters, 0 gradients, 16.4 GFLOPs Adding AutoShape...
Saving Images.zip to Images (6).zip